<?php

namespace slinks\core\dependencyInjectionExt;


/**
 * Defines all parameters that WILL be available within the container.
 * 
 * All constants follow the convention 
 * 
 * PARAM_ = Any parameter name that WILL be available within the container. 
 * 
 * SERVICE_ = Any service name that WILL be available within the container.
 *
 * @author navid
 */
class ContainerConstants {
    
    /**
     * If debug is enabled for the container. 
     * A lot of extensions use this parameter as well to enable debugging.
     */
    const PARAM_DEBUG = 'slinks.debug.enabled';
    
    /**
     * Container cache directory.
     */
    const PARMA_CACHE_DIR = 'slinks.cache.dir';
    
    /**
     * Array of all applicatins defined within the container. 
     */
    const PARAM_APPLICATIONS ='slinks.applications';
    
    /**
     * The main application that loaded all other applications. 
     */
    const PARAM_ROOT_APPLICATION = 'slinks.root.application';
    
    /**
     * The container's root application directory; 
     */
    const PARAM_ROOT_APPLICATION_DIR = 'slinks.config.root.dir';
    
    /**
     * Contains all namespaces that should automatically be setup for autoload.
     */
    const PARAM_AUTO_NAMESPACES = 'slinks.auto.namespaces';
    
    /**
     * Classes that the container should compile .
     */
    const PARAM_CLASSES_TO_COMPILE = 'slinks.compiled_classes';
    
    /**
     * The suffix that is given to application names when creating application directory parameters.
     */
    const APPLICATION_DIR_PARAM_SUFFIX = '.root.dir';
}
